Surfacing Visual Representations of Universal Applications

ABSTRACT

Surfacing visual representations of universal applications is described. In one or more implementations, visual representations of universal applications purchased or installed on other devices associated with a user account are surfaced in an application launcher interface on a current computing device. The visual representations are selectable (e.g., with a single click or tap) to install the universal application on the current computing device. This enables the user to quickly and easily install universal applications already purchased on other devices onto a current device without having to perform any additional action, such as navigating away from the application launcher interface to enter payment information. In one or more implementations, the visual representations of the universal applications are surfaced under a “recently added” section and/or an “on other devices” section of the application launcher to enable the universal applications to be easily located by the user.

RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.14/587,592, filed Dec. 31, 2014, entitled “Surfacing VisualRepresentations of Universal Applications”, the entire disclosure ofwhich is hereby incorporated by reference herein in its entirety.

BACKGROUND

Users often struggle to find newly installed applications on theirdevices. Some conventional solutions solve this problem by reflectingthe recently installed applications in either a “Most Used” or “RecentlyAdded” list. Increasingly, however, users own multiple devices ofvarious form factors which are usable for different purposes. Forexample, a user may own a personal computer, a laptop, a tablet device,a smartphone, a gaming device, an e-reader, a fitness band, and soforth. In such a scenario, it is difficult for the user to preview theapplications installed on other devices from the current device beingused by the user.

SUMMARY

Surfacing visual representations of universal applications is described.In one or more implementations, visual representations of universalapplications purchased or installed on other devices associated with auser account are surfaced in an application launcher interface on acurrent computing device. The visual representations are selectable(e.g., with a single click or tap) to install the universal applicationon the current computing device. This enables the user to quickly andeasily install universal applications already purchased on other devicesonto a current device without having to perform any additional action,such as navigating away from the application launcher interface to enterpayment information.

In one or more implementations, the visual representations of theapplications include a visual identifier which identifies where eachapplication was originally installed. For example, an applicationoriginally installed on the user's smartphone may be surfaced with animage representing the smartphone to identify that the universalapplication was originally installed on the user's smartphone.

In one or more implementations, the visual representations of theuniversal applications are surfaced under a “recently added” sectionand/or an “on other devices” section of the application launcherinterface to enable the universal applications to be easily located bythe user.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. The same numbers are used throughout the drawings to referencelike features and components.

FIG. 1 is an illustration of an environment in an example implementationthat is operable to support techniques described herein.

FIG. 2 illustrates a system in which devices associated with a useraccount download universal applications from an application store, andan account manager tracks the downloaded universal applications inaccordance with one or more implementations

FIG. 3 illustrates a system in which an application manager moduleidentifies applications on other devices and recently added applicationsin accordance with one or more implementations.

FIG. 4a illustrates an example of a recently added section of anapplication launcher interface in accordance with one or moreimplementations.

FIG. 4b illustrates an additional example of a recently added section ofan application launcher interface in accordance with one or moreimplementations.

FIG. 4c illustrates an additional example of a recently added section ofan application launcher interface in accordance with one or moreimplementations.

FIG. 4d illustrates an example of an on other devices section of anapplication launcher interface in accordance with one or moreimplementations.

FIG. 4e illustrates an example of an on other devices section of anapplication launcher interface in accordance with one or moreimplementations.

FIG. 4f illustrates an example of an on other devices section of anapplication launcher interface in accordance with one or moreimplementations.

FIG. 5 illustrates an example method of identifying universalapplications installed on other devices associated with a user accountin accordance with one or more implementations.

FIG. 6 illustrates an example method of surfacing visual representationsof universal applications in accordance with one or moreimplementations.

FIG. 7 illustrates an example system that includes an example computingdevice that is representative of one or more computing systems and/ordevices that may implement the various techniques described herein.

DETAILED DESCRIPTION

Overview

Surfacing visual representations of universal applications is described.In various implementations, a universal application model provides anapplication store which enables a user to purchase a “universalapplication” on one device, and install and run the same universalapplication across platforms on all of the user's devices.

As described herein, the term “universal application” may be used torefer to an application that can be purchased and installed on onedevice and usable on other devices associated with a same user account.Thus, a universal application can run across various platforms ondevices with different form factors, such as smartphones, tabletdevices, gaming devices, personal computers, and so forth.

Techniques described herein enable visual representations of universalapplications purchased or installed on other devices associated with auser account to be surfaced in an application launcher interface on acurrent computing device. The visual representations are selectable(e.g., with a single click or tap) to install the universal applicationon the current computing device. This enables the user to quickly andefficiently install universal applications already purchased on otherdevices onto a current device without having to perform any additionalaction, such as navigating away from the application launcher interfaceto enter payment information.

In one or more implementations, the visual representations of theapplications include a visual identifier which identifies where eachapplication was originally installed. For example, an applicationoriginally installed on the user's smartphone may be surfaced with animage representing the smartphone to identify that the universalapplication was originally installed on the user's smartphone.

In one or more implementations, the visual representations of theuniversal applications are surfaced under a “recently added” sectionand/or an “on other devices” section of the application launcher.Surfacing the applications in this way makes it easy and efficient forthe user to locate recently installed universal applications on multipledifferent devices.

Consider, for example, that a user installs Angry Birds on hersmartphone at night before going to sleep. The next day, the userlaunches the start menu on her desktop computer and notices that AngryBirds is in the recently added section of the application launcherinterface. The user can now easily and efficiently install the AngryBirds application with a single click, and continue playing the game onher desktop computer.

Notably, surfacing visual representations of the universal applicationsinstalled on other devices provides the user with the option to installeach universal application, as opposed to automatically installingapplications across each of the user's devices. Thus, the user candiscriminately choose which of the universal applications purchased onother devices to install on the current device.

As an example, consider that the user buys a new laptop and does notwant to cloud restore the laptop to include all of the user's previouslypurchased universal applications. Instead, the user wants to manuallyselect the applications to install on the new device. Further, the userwants to experience his new device at full capacity and doesn't want tobring over other applications which may slow down his new device. Inthis scenario, the described techniques enable the user to quickly setup the new device with only the applications the user cares about. Forexample, all of the universal applications that the user had installedon the user's other devices are available in the “on other devices”section of the application launcher interface, which enables the user toquickly and efficiently click-to-install the applications the user stillcares about.

Example Environment

FIG. 1 is an illustration of an environment 100 in an exampleimplementation that is operable to support techniques described herein.The illustrated environment 100 includes a computing device 102 that maybe configured in a variety of ways. For example, computing device 102may be configured as a traditional computer (e.g., a desktop personalcomputer, laptop computer, and so on), a mobile station, anentertainment appliance, a set-top box communicatively coupled to atelevision, a smartphone, a netbook, a game console, a handheld device(e.g., a tablet), a wearable device (e.g., a smartphone or a fitnessband) and so forth as further described in relation to FIG. 7.

Computing device 102 includes “local” applications 104 which arerepresentative of functionalities to perform various tasks via thecomputing device 102. Local applications 104 are considered “local”applications because they are installed locally at computing device 102.Examples of local applications 104 include gaming applications, wordprocessor applications, email applications, content editingapplications, web browsing applications, and so forth.

Environment 100 further includes an application store 106, which isrepresentative of a resource that is remote from the computing device102 and provides various universal applications 108 to computing device102. For instance, application store 106 can provide universalapplications 108 to computing device 102, such as via download and/orupload, responsive to a request to purchase or install universalapplications 108.

As described herein, the term “universal application” may be used torefer to an application that can be purchased and installed on onedevice and usable on other devices associated with a same user account.Thus, a universal application can run across various platforms ondevices with different form factors, such as smartphones, tabletdevices, gaming devices, personal computers, and so forth.

Universal applications 108 which are downloaded to computing device 102become local applications 104 for computing device 102. However,computing device 102 may also include local applications 104 other thanthe universal applications downloaded from application store 106, suchas applications that come pre-installed on computing device 102 orpurchased from a store other than application store 106.

Computing device 102 is associated with a user account 110 that isregistered with application store 106. For example, a user of computingdevice 102 can enter authentication credentials, such as a username andpassword, to sign into user account 110 on computing device 102 toenable access to universal applications 108 from application store 106.Additionally, the user can sign into user account 110 on other devicesin order to authorize the other devices with the user account.

For example, computing device 102 may be implemented as a tablet device,but the user may also own a smartphone, a gaming device, and a personalcomputer. Each of these devices may be associated with user account 110,and thus each device can request and download universal applications 108that are purchased on any one of the devices from application store 106.

Environment 100 further includes an account manager 112, which isrepresentative of a resource that is remote from computing device 102and that can track universal applications 108 purchased and installed atdevices associated with each user account 110. For each user account110, account manager 112 generates a universal application list 114which tracks the universal applications 108 purchased from applicationstore 106 by devices associated with user account 110. While illustratedas separate components, in one or more implementations application store106 and account manager 112 may implement as a single component and/orlocated at a single server.

Computing device 102 further includes an application manager module 116,which is representative of functionality to manage both localapplications 104 installed on computing device 102 as well as universalapplications 108 purchased on other devices associated with user account110.

Application manager module 116 is configured to provide an applicationlauncher interface 118 on a display 120 of computing device 102. Display120 is representative of a device that is configured to output graphicsfor computing device 102. Application launcher interface 118 isconfigured to present visual representations (e.g., icons, tiles, and soforth) of local applications 104 installed on computing device 102 in an“all applications” 122 section of application launcher interface 118.The visual representations are selectable to launch the localapplications 104 on computing device 102.

In accordance with various implementations, application manager module116 is further configured to surface visual representations of universalapplications 108 that have been installed on one or more devicesassociated with user account 110, but are not currently installed oncomputing device 102, in an on other devices 124 section and/or arecently added section 126 of application launcher interface 118. Thus,the visual representations preview or represent applications that havebeen purchased by the user, but are not yet installed on the currentcomputing device 102. The visual representations are selectable (e.g.,with a single click or tap) to download the application to computingdevice 102.

In one or more implementations, application launcher interface 118 islocated in a “start” menu of computing device 102. Alternately oradditionally, application launcher interface 118 is displayed on thedisplay 120 as part of a primary screen of the computing device 102. Thevisual representations, for example, can be automatically presented aspart of a first screen that is displayed when the computing device 102is powered on (e.g., booted) from a power off state or when the userlogs into user account 110 on computing device 102.

Further functionalities of application manager module 116 andapplication launcher interface 118 are discussed below.

Environment 100 further includes a network 128, which enablescommunication between computing device 102, application store 106,account manager 112, and various other entities. The network 128 can beimplemented as a single network or a combination of different networks.Examples of the network 128 include a local area network (LAN), a widearea network (WAN), the Internet, and so forth.

FIG. 2 illustrates a system 200 in which devices associated with a useraccount download universal applications from an application store, andan account manager tracks the downloaded universal applications inaccordance with one or more implementations.

In this example, a user has authorized three different devices with auser account 110, a smartphone 102-1, a mobile device 102-2, and agaming device 102-3. As described above, application store 106 enablesthe user to purchase, download, and install universal applications 108at multiple different authorized devices. Thus, in this example,universal applications 108 are purchased and installed at each ofdevices 102-1, 102-2, and 102-3.

Account manager 112 communicates with application store 106 to track theapplications installed using devices associated with user account 110.For each user account 110, account manager 112 generates a universalapplication list 114 that includes application identifiers 202 for eachuniversal application 108 that is installed on at least one of thedevices associated with user account 110. The application identifier202, for instance, may correspond to a name and/or serial number of theeach application.

In one or more implementations, account manager 112 stores aninstallation timestamp 204 with each application identifier 202. Theinstallation timestamp 204 includes information identifying the time(e.g., date and time of day) that the corresponding application wasinstalled. As will be described in more detail below, installationtimestamp 204 can be used to identify recently added applications.

In one or more implementations, account manager 112 also stores a deviceidentifier 206 with each application identifier 202. The deviceidentifier 206 identifies the device (e.g., by name, serial number,type, and so forth) at which the respective application was installed.For example, an application purchased and installed on smartphone 102-1may have an application identifier of “smartphone”, “Windows Phone”, or“John's Phone”. In some cases, device identifier 206 may further includea visual identifier of the device, such as an icon representing thedevice on which the application was installed. As discussed in moredetail below, the device identifier is usable by application managermodule 116 to provide a visual identifier of the device at which eachapplication was installed in the application launcher.

FIG. 3 illustrates a system 300 in which an application manager moduleidentifies applications on other devices and recently added applicationsin accordance with one or more implementations.

In this example, application manager module 116 communicates a request302 from computing device 102 to account manager 112. Request 302 may becommunicated in response to a variety of different actions, such as theuser logging into user account 110 on computing device 102, powering oncomputing device 102, and so forth. Request 302 may include anidentifier of user account 110 to enable account manager to determinethe user account associated with request 302.

Responsive to receiving request 302, account manager 112 communicatesuniversal application list 114 to computing device 102. As discussed inFIG. 2, universal application list 114 may include applicationidentifiers 202 corresponding to each universal application 108purchased and installed on a device associated with user account 110.Universal application list 114 may also include, for each applicationidentifier 202, an installation timestamp 204 and/or a device identifier206.

In response to receiving universal application list 114, applicationmanager module 116 determines applications on other devices 304.Applications on other devices 304 correspond to universal applications108 that have been installed on at least one device associated with useraccount 110, but are not currently installed on the current computingdevice 102.

To identify applications on other devices 304, application managermodule 116 compares universal application list 114 to a localapplication list 306. The local application list 306 is a list of thelocal applications 104 that are installed on computing device 102. Insome cases, the local applications may have been previously downloadedand installed from application store 106. However, local applications104 may also include applications installed from other sources.

Based on this comparison, application manager module 116 identifiesapplications on other devices 304 as the applications listed inuniversal application list 114 which are not listed in local applicationlist 306.

In an alternate implementation, the applications on other devices 304may be determined remote from computing device 102 by account manager112. In this case, the universal application list may include only thoseapplications that are not currently installed on computing device 102.

In one or more implementations, application manager module 116 isfurther implemented to identify recently added applications 308 whichhave been purchased or installed within a recent time period 310. Recenttime period 310 may be predetermined, or configurable by the user, andmay correspond to any time period, such as within the last 24 hours, thelast week, and so forth.

Unlike conventional solutions, application manager module 116 includesuniversal applications 108, which are not currently installed oncomputing device 102, with recently added applications 308. To identifythe recently added applications, application manager module 116 extractsinstallation timestamp 204 from the applications listed in universalapplication list. Application manager module 116 may extract a similarinstallation timestamp from local applications 104 which are notincluded in universal application list 114. Application manager module116 compares installations timestamp 204 to the recent time period 310,and identifies the recently added applications 308 as the applicationswhich have been installed within the recent time period 310.

Application manager module 116 is configured to surface visualrepresentations of the applications on other devices 304 and therecently added applications 308 in application launcher interface 118.The visual representations of the applications can be selected by theuser to quickly and easily download the applications to computing device102.

In one or more implementations, application launcher interface 118 isimplemented as part of a start menu to enable the user to quickly andefficiently find and install universal applications 108 that have beeninstalled on other devices.

As noted previously, application launcher interface 118 may include anall applications section 122 which displays visual representations oflocal applications 104 which are currently installed on computing device102, a recently added section 126 which displays visual representationsof recently added applications 308, and an on other devices section 124which displays visual representations of universal applications on otherdevices 304.

In one or more implementations, the recently added section 126 isdisplayed at the top of application launcher interface 118, followed bythe all applications section 122, and the on other devices section 124is displayed on the bottom of applications launcher interface 118. Thisconfiguration enables users to quickly and easily find recently addedapplications 308, while still being able to access applicationsinstalled on other devices even when they are no longer displayed in therecently added section.

FIG. 4a illustrates an example 400 of a recently added section of anapplication launcher interface in accordance with one or moreimplementations.

In this example, application launcher interface 118 is displayed ondisplay 120 of a tablet computing device 102. For purposes of thisexample, assume that a user named “John” owns tablet computing device102, along with a smartphone, a gaming device, and a desktop computer,and that each of these devices are associated with John's user account110.

Assume, also, that John has purchased and installed the followinguniversal applications 108: the word processing application MicrosoftWord on John's desktop, a maps application on John's tablet computingdevice, an e-commerce application by Amazon on John's smartphone, thegaming application Destiny on John's Xbox gaming device, the photoediting application FireArt on John's desktop computer, and the emailapplication Outlook on John's desktop computer. For purposes of thisdiscussion, assume that the order listed above is sorted from the mostrecent installation, thus the Microsoft Word application was mostrecently purchased by John.

In this case, account manager 112 may maintain the following universalapplication list:

TABLE 1 Universal Application List for John's User Account ApplicationIdentifier 202 Device Identifier 206 Word Desktop Maps Tablet AmazonSmaRtphone Destiny Gaming Device FireArt Desktop Outlook Desktop

Now, when John logs into his user account 110, application launcherinterface 118 displays a user account identifier 402 for John toidentify that user account 110 is activated, and application managermodule 116 surfaces visual representations 404 of recently addedapplications 308 in recently added section 126 of application launcherinterface 118. As noted previously, recently added applications 308correspond to applications recently installed and/or purchased duringrecent time period 310 (e.g., the last 24 hours) at computing device102, or at another device associated with user account 110.

In this non-limiting example, visual representations 404 include avisual icon or image (e.g., a logo identifying the application) and aname of the application. It is to be appreciated, however, that any typeor combination of visual representations or graphical elements can beused to identify recently added applications 308 in recently addedsection 126, including images, words, icons, logos, and so forth.

In example 400, recently added section 126 displays the threemost-recently installed applications, Word, Maps, and Amazon. Theapplications are listed in order of installation, with the most-recentlyinstalled application, Word, listed at the top. Alternately, therecently added applications may be listed using different criteria, suchas alphabetical order.

While recently added section 126 is illustrated as including threerecently added applications 308, it is to be noted that recently addedsection 126 is not limited to displaying just three recently addedapplications, and in some implementations may display more than or lessthan three applications.

In this example, recently added section 126 further includes a show allcontrol 406 which is selectable to expand the list to show all of theapplications installed within recent time period 310. For example,selection of show all control 406 causes application launcher interface118 to further display visual representations for the applicationsDestiny, FireArt, and Outlook, as long as the installation times arestill within the recent time period.

Notably, recently added section 126 of application launcher interface118 includes both local applications 104 installed on John's tabletdevice (e.g., Maps) as well as universal applications 108 installed onJohn's other devices (e.g., Word and Amazon) which are not yet installedon computing device 102.

For applications that have been installed on another device associatedwith John's user account 110, but are not yet installed on computingdevice 102, application manager module 116 displays an install control408 and a visual device identifier 410 proximate the visualrepresentation 404 of the application. The install control 408 andvisual device identifier 410 inform the user that the applicationspurchased on other devices are available for download because they havealready been purchased on another device associated with user account110.

Visual device identifier 410 identifies the device at which theapplication was originally installed. For example, visual deviceidentifier 410, displayed proximate the Word application, is an imagerepresentative of a desktop computer to identify that the Wordapplication was originally installed on John's desktop computer.Similarly, the visual device identifier 410, displayed proximate theAmazon application, is an image representative of a smartphone toidentify that the Amazon application was originally installed on John'ssmartphone. Of course, any type of graphical element can be used toidentify the device on which an application is installed, such as text,images, logos, and so forth. Notably, the maps application does notinclude a visual device identifier 410 because the maps application isalready installed locally on John's tablet computing device 102.

Install control 408 is selectable to download each respectiveapplication to computing device 102. In this example, John has selectedinstall control 408 positioned proximate visual representation 404 ofthe Word application by placing a cursor over install control 408 andperforming a single click. Of course, if tablet computing device 102includes a touchscreen, then the install control could also be selectedby John by simply tapping install control 408 with John's finger. In oneor more implementations, the user can also select the visualrepresentation 404, such as by clicking the applications logo or image,to initiate the download.

Responsive to selection of install control 408 or visual representation404, application manager module 116 initiates download and installationof the respective application to tablet computing device 102, such as bytransmitting a request to application store 106 to download the selectedapplication. As discussed above, because John has already purchased theuniversal application using another device associated with user account110, John does not need to enter payment information or navigate toapplication store 106 in order to install the application.

FIG. 4b illustrates an additional example of a recently added section ofan application launcher interface in accordance with one or moreimplementations. In this example, responsive to selection of the installcontrol 408 associated with the Word application, a download statusvisual 412 is displayed proximate the visual representation to indicatethat the Word application is currently downloading to tablet computingdevice 102. In this example, a download status visual 412 is displayedin line with visual representation 404 and indicates the download status(e.g., the percentage of the application which has been downloaded).

As illustrated in FIG. 4c , when the application is finisheddownloading, application manager module 116 removes the visual deviceidentifier 410 and the install control 408 associated with the Wordapplication because the Word application is now installed locally ontablet computing device 102. The user can now select the visualrepresentation 404 associated with the Word application in order tolaunch Word at tablet computing device 102.

In this example, application manager module 116 displays an allapplications section 122 below recently added section 126. As notedabove, the all applications section 122 includes all of the localapplications 104 installed on tablet computing device 102. In this case,the local applications 104 are listed in alphabetical order, startingwith applications beginning with the letter “A”, to enable the user toscroll downwards to locate the local applications. In all applicationssection 122, the visual representations of the applications areselectable in order to launch the applications at computing device 102.

Application manager module 116 is configured to remove the applicationsfrom recently added section 126 after the application's installationtime no longer falls within the recent time period. However, theapplications are still available for download in the on other devicessection 124 of application launcher interface 118, which will now bediscussed with regards to FIG. 4 d.

FIG. 4d illustrates an example 400 of an on other devices section of anapplication launcher interface in accordance with one or moreimplementations.

Application manager module 116 surfaces visual representations 414 ofthe applications on other devices 304 in on other devices section 124 ofapplication launcher interface 118. As noted previously, theapplications on other devices 304 correspond to applications installedand/or purchased at one or more devices associated with user account 110that are not yet installed on the current computing device 102. In thisnon-limiting example, the on other devices section 124 is displayed atthe end of the all applications section 122 of application launcherinterface 118.

Similar to the visual representations 404 displayed in recently addedsection 126, visual representations 414 include a visual icon or image(e.g., a logo identifying the application) and a name of theapplication.

In this example, on other devices section 124 displays threeapplications that are installed on John's other devices, the Amazonapplication, the Destiny Application, and the FireArt application. Theapplications may be ordered such that the most recently-installedapplications, which in this example is the Amazon application, is listedat the top of on other devices section 124. Alternately, theapplications on other devices may be listed using different criteria,such as alphabetical order.

Note that the on other devices section 124 of application launcherinterface 118 does not include the Word or Maps application which wereboth included in the recently added section 126. The maps application isnot included here because it was installed locally on tablet computingdevice 102. The word application is no longer listed in this sectionbecause John has installed the Word application to tablet computingdevice 102, as illustrated in FIGS. 4b and 4 c.

While on other device section 124 is illustrated as including threeapplications on other devices 304, it is to be noted that on otherdevices section 124 is not limited to displaying just threeapplications, and in some implementations may display more than or lessthan three applications. In one or more implementations, on otherdevices section 124 further includes a show all control 406 which isselectable to expand the list to show all of the applications installedon other devices which are not installed on computing device 102.

Similar to recently added section 126, application manager module 116displays an install control 416 and a visual device identifier 418proximate or in line with the visual representation 414.

Visual device identifier 418 identifies the device at which theapplication was originally installed. For example, visual deviceidentifier 418, displayed proximate the Amazon application, is an imagerepresentative of a smartphone to identify that the Amazon applicationwas originally installed on John's smartphone. Similarly, the visualdevice identifier 418, displayed proximate the Destiny application, isan image representative of an Xbox® gaming device to identify that theDestiny application was originally installed on John's Xbox gamingdevice. Similarly, the visual device identifier 418, displayed proximatethe FireArt application, is an image representative of a desktopcomputer to identify that the FireArt application was originallyinstalled on John's desktop computer.

Install control 416 is selectable to download each respectiveapplication to tablet computing device 102. In this example, John hasselected install control 416 positioned proximate the visualrepresentation 414 of the Destiny application by placing a cursor overinstall control 416 and performing a single click.

Responsive to selection of install control 416 or visual representation414, application manager module 116 detects the selection and initiatesdownload and installation of the respective application to tabletcomputing device 102, such as by transmitting a request to applicationstore 106 to download the selected application.

FIG. 4e illustrates an additional example 400 of an on other devicessection of an application launcher interface in accordance with one ormore implementations.

In this example, responsive to selection of the install control 416associated with the destiny application, a download status visual 420 isdisplayed proximate the visual representation to indicate that theDestiny application is currently downloading to computing device 102.

When the application is finished downloading, application manager module116 removes the Destiny application from the on other devices section,as illustrated in FIG. 4f . Note also that application manager module116 has moved up the FireArt application one spot, and added the Outlookapplication to the on other devices section 124 to replace the destinyapplication.

Example Methods

The methods described herein are shown as sets of blocks that specifyoperations performed but are not necessarily limited to the order orcombinations shown for performing the operations by the respectiveblocks. The techniques are not limited to performance by one entity ormultiple entities operating on one device.

FIG. 5 illustrates an example method 500 of identifying universalapplications installed on other devices associated with a user accountin accordance with one or more implementations.

At 502, a universal application list of applications is received at acomputing device. The universal application list identifies universalapplications installed on one or more other devices associated with auser account of the computing device. For example, application managermodule 116 receives universal application list 114 at computing device102 which identifies universal applications 108 installed at otherdevices associated with user account 110.

At 504, the universal application list is compared to a localapplication list of local applications installed at the computingdevice, and at 506 universal applications installed on other devicesassociated with the user account are determined. For example,application manager module 116 compares universal application list 114to local application list 306 and determines universal applications onother devices 304 that are not installed at computing device 102.

Alternately or additionally, at 508, an installation time stamp isextracted from the universal applications listed in the universalapplication list. For example, application manager module 116 extractsinstallation timestamp 204 from the universal applications listed inuniversal application list 114.

At 510, the extracted timestamps are compared to a recent time period toidentify one or more recently added applications. For example,application manager module 116 compares the extracted installation timestamps 204 to recent time period 310 to identify one or more recentlyadded applications 308.

FIG. 6 illustrates an example method 600 of surfacing visualrepresentations of universal applications in accordance with one or moreimplementations.

At 602, one or more visual representations of universal applicationsthat have been installed on other devices associated with a user accountare surfaced at a computing device. For example, application managermodule 116 surfaces visual representations 404 of universal applicationsthat have been installed on other devices associated with user account110 in recently added section 126 of application launcher interface 118.Alternately or additionally, application manager module 116 surfacesvisual representations 414 of applications that have been installed onother devices associated with user account 110 in on other devicessection 124 of application launcher interface 118.

At 604, responsive to receiving a selection of one of the visualrepresentations, a download of the respective application to thecomputing device is initiated. For example, application manager module116 initiates a download of a respective universal application 108responsive to selection of one of the visual representations 404 or 414.

Example System and Device

FIG. 7 illustrates an example system generally at 700 that includes anexample computing device 702 that is representative of one or morecomputing systems and/or devices that may implement the varioustechniques described herein. This is illustrated through inclusion ofapplication store 106, account manager 112, and application managermodule 116 which may be configured to implement surfacing visualrepresentations of universal applications as previously described.

The computing device 702 may be, for example, a server of a serviceprovider, a device associated with a client (e.g., a client device), anon-chip system, and/or any other suitable computing device or computingsystem. The example computing device 702 as illustrated includes aprocessing system 704, one or more computer-readable media 706, and oneor more I/O interface 708 that are communicatively coupled, one toanother. Although not shown, the computing device 702 may furtherinclude a system bus or other data and command transfer system thatcouples the various components, one to another. A system bus can includeany one or combination of different bus structures, such as a memory busor memory controller, a peripheral bus, a universal serial bus, and/or aprocessor or local bus that utilizes any of a variety of busarchitectures. A variety of other examples are also contemplated, suchas control and data lines.

The processing system 704 is representative of functionality to performone or more operations using hardware. Accordingly, the processingsystem 704 is illustrated as including hardware element 710 that may beconfigured as processors, functional blocks, and so forth. This mayinclude implementation in hardware as an application specific integratedcircuit or other logic device formed using one or more semiconductors.The hardware elements 710 are not limited by the materials from whichthey are formed or the processing mechanisms employed therein. Forexample, processors may comprise semiconductor(s) and/or transistors(e.g., electronic integrated circuits (ICs)). In such a context,processor-executable instructions may be electronically-executableinstructions.

The computer-readable storage media 706 is illustrated as includingmemory/storage 712. The memory/storage 712 represents memory/storagecapacity associated with one or more computer-readable media. Thememory/storage component 712 may include volatile media (such as randomaccess memory (RAM)) and/or nonvolatile media (such as read only memory(ROM), Flash memory, optical disks, magnetic disks, and so forth). Thememory/storage component 712 may include fixed media (e.g., RAM, ROM, afixed hard drive, and so on) as well as removable media (e.g., Flashmemory, a removable hard drive, an optical disc, and so forth). Thecomputer-readable media 706 may be configured in a variety of other waysas further described below.

Input/output interface(s) 708 are representative of functionality toallow a user to enter commands and information to computing device 702,and also allow information to be presented to the user and/or othercomponents or devices using various input/output devices. Examples ofinput devices include a keyboard, a cursor control device (e.g., amouse), a microphone, a scanner, touch functionality (e.g., capacitiveor other sensors that are configured to detect physical touch), a camera(e.g., which may employ visible or non-visible wavelengths such asinfrared frequencies to recognize movement as gestures that do notinvolve touch), and so forth. Examples of output devices include adisplay device (e.g., a monitor or projector), speakers, a printer, anetwork card, tactile-response device, and so forth. Thus, the computingdevice 702 may be configured in a variety of ways as further describedbelow to support user interaction.

Various techniques may be described herein in the general context ofsoftware, hardware elements, or program modules. Generally, such modulesinclude routines, programs, objects, elements, components, datastructures, and so forth that perform particular tasks or implementparticular abstract data types. The terms “module,” “functionality,” and“component” as used herein generally represent software, firmware,hardware, or a combination thereof. The features of the techniquesdescribed herein are platform-independent, meaning that the techniquesmay be implemented on a variety of commercial computing platforms havinga variety of processors.

An implementation of the described modules and techniques may be storedon or transmitted across some form of computer-readable media. Thecomputer-readable media may include a variety of media that may beaccessed by the computing device 702. By way of example, and notlimitation, computer-readable media may include “computer-readablestorage media” and “computer-readable signal media.”

“Computer-readable storage media” may refer to media and/or devices thatenable persistent and/or non-transitory storage of information incontrast to mere signal transmission, carrier waves, or signals per se.Thus, computer-readable storage media refers to non-signal bearingmedia. The computer-readable storage media includes hardware such asvolatile and non-volatile, removable and non-removable media and/orstorage devices implemented in a method or technology suitable forstorage of information such as computer readable instructions, datastructures, program modules, logic elements/circuits, or other data.Examples of computer-readable storage media may include, but are notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, digital versatile disks (DVD) or other optical storage, harddisks, magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or other storage device, tangible media, orarticle of manufacture suitable to store the desired information andwhich may be accessed by a computer.

“Computer-readable signal media” may refer to a signal-bearing mediumthat is configured to transmit instructions to the hardware of thecomputing device 702, such as via a network. Signal media typically mayembody computer readable instructions, data structures, program modules,or other data in a modulated data signal, such as carrier waves, datasignals, or other transport mechanism. Signal media also include anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media include wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared, and other wireless media.

As previously described, hardware elements 710 and computer-readablemedia 706 are representative of modules, programmable device logicand/or fixed device logic implemented in a hardware form that may beemployed in some embodiments to implement at least some aspects of thetechniques described herein, such as to perform one or moreinstructions. Hardware may include components of an integrated circuitor on-chip system, an application-specific integrated circuit (ASIC), afield-programmable gate array (FPGA), a complex programmable logicdevice (CPLD), and other implementations in silicon or other hardware.In this context, hardware may operate as a processing device thatperforms program tasks defined by instructions and/or logic embodied bythe hardware as well as a hardware utilized to store instructions forexecution, e.g., the computer-readable storage media describedpreviously.

Combinations of the foregoing may also be employed to implement varioustechniques described herein. Accordingly, software, hardware, orexecutable modules may be implemented as one or more instructions and/orlogic embodied on some form of computer-readable storage media and/or byone or more hardware elements 710. The computing device 702 may beconfigured to implement particular instructions and/or functionscorresponding to the software and/or hardware modules. Accordingly,implementation of a module that is executable by the computing device702 as software may be achieved at least partially in hardware, e.g.,through use of computer-readable storage media and/or hardware elements710 of the processing system 704. The instructions and/or functions maybe executable/operable by one or more articles of manufacture (forexample, one or more computing devices 702 and/or processing systems704) to implement techniques, modules, and examples described herein.

The techniques described herein may be supported by variousconfigurations of the computing device 702 and are not limited to thespecific examples of the techniques described herein. This functionalitymay also be implemented all or in part through use of a distributedsystem, such as over a “cloud” 714 via a platform 716 as describedbelow.

The cloud 714 includes and/or is representative of a platform 716 forresources 718. The platform 716 abstracts underlying functionality ofhardware (e.g., servers) and software resources of the cloud 714. Theresources 718 may include applications and/or data that can be utilizedwhile computer processing is executed on servers that are remote fromthe computing device 702. Resources 718 can also include servicesprovided over the Internet and/or through a subscriber network, such asa cellular or Wi-Fi network.

The platform 716 may abstract resources and functions to connect thecomputing device 702 with other computing devices. The platform 716 mayalso serve to abstract scaling of resources to provide a correspondinglevel of scale to encountered demand for the resources 718 that areimplemented via the platform 716. Accordingly, in an interconnecteddevice embodiment, implementation of functionality described herein maybe distributed throughout the system 700. For example, the functionalitymay be implemented in part on the computing device 702 as well as viathe platform 716 that abstracts the functionality of the cloud 714.

CONCLUSION AND EXAMPLE IMPLEMENTATIONS

Example implementations described herein include, but are not limitedto, one or any combinations of one or more of the following examples:

A computer-implemented method comprising: surfacing, in an applicationlauncher interface of a computing device, one or more visualrepresentations of universal applications that have been installed onone or more other devices associated with a user account of thecomputing device; and responsive to receiving a selection of one of thevisual representations, initiating a download of the respectiveuniversal application to the computing device.

A computer-implemented method as described above, further comprisingpresenting, proximate each visual representation, a visual deviceidentifier which identifies the device on which the universalapplication was originally installed.

A computer-implemented method as described above, further comprisingremoving the visual device identifier after the respective universalapplication is downloaded to the computing device.

A computer-implemented method as described above, wherein the selectioncomprises a single click or tap on the visual representation.

A computer-implemented method as described above, wherein the one ormore visual representations of universal applications that have beeninstalled on other devices is surfaced in an on other devices section ofthe application launcher interface.

A computer-implemented method as described above, further comprising,responsive to downloading the respective universal application to thecomputing device, removing the visual representation of the downloadeduniversal application from the on other devices section of theapplication launcher interface.

A computer-implemented method as described above, wherein the one ormore visual representations of universal applications that have beeninstalled on other devices is surfaced in a recently added section ofthe application launcher interface.

A computer-implemented method as described above, wherein the recentlyadded section of the application launcher interface includes at leastone visual representation of an application that was recently installedlocally on the computing device.

A computer-implemented method as described above, further comprising,responsive to receiving the selection of the visual representation,presenting proximate the visual representation of the respectiveuniversal application a download status visual indicating the status ofthe download of the universal application to the computing device.

A computer-implemented method as described above, wherein theapplication launcher interface is contained within a start menuinterface of the computing device.

A computer-implemented method as described above, wherein the surfacingis performed in response to a user sign-in to the user account on thecomputing device.

A computing device comprising: a display device; at least one processor;and one or more computer-readable storage media including instructionsstored thereon that, responsive to execution by the at least oneprocessor, cause the computing device to perform operations comprising:receiving a universal application list of universal applicationsinstalled on one or more other devices associated with a user account ofthe computing device; comparing the universal application list to alocal application list of applications installed on the computingdevice; based on the comparison, determining one or more universalapplications installed on other devices associated with the user accountwhich are not installed on the computing device; and displaying, on thedisplay device, one or more visual representations of the universalapplications installed on other devices in an application launcherinterface, each visual representation selectable to initiate download ofthe respective universal application to the computing device.

A computing device as described above, wherein the operations furthercomprise: extracting an installation timestamp from each universalapplication included in the universal application list; comparing eachinstallation timestamp to a recent time period to identify one or morerecently added universal applications which were installed within therecent time period; and displaying visual representations of therecently added universal applications in a recently added section of theapplication launcher.

A computing device as described above, wherein the one or more visualrepresentations of the universal applications installed on other devicesare displayed in an on other devices section of the application launcherinterface.

A computing device as described above, wherein the operations furthercomprise displaying, on the display device, a visual device identifierof the device on which the universal application was installed proximateeach visual representation of the universal applications installed onother devices.

A computer-implemented method comprising: surfacing, at a computingdevice, visual representations of recently installed applications, thevisual representations including at least one visual representation of auniversal application that is installed on an additional deviceassociated with a user account; presenting, proximate the at least onevisual representation of the universal application, a download controlselectable to download the universal application to the device; andresponsive to receiving a selection of the download control, downloadingthe universal application to the computing device.

A computer-implemented method as described above, wherein the visualrepresentations include at least one visual representation of a localapplication that is installed on the computing device.

A computer-implemented method as described above, further comprisingafter downloading the universal application to the computing device:receiving a selection of the visual representation of the universalapplication; and launching the universal application at the computingdevice.

A computer-implemented method as described above, further comprisingpresenting, proximate the visual representation of the universalapplication, a visual device identifier which identifies the device onwhich the universal application was originally installed.

A computer-implemented method as described above, wherein the selectioncomprises a single click or tap on the visual representation.

Although the example implementations have been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the implementations defined in the appended claims isnot necessarily limited to the specific features or acts described.Rather, the specific features and acts are disclosed as example forms ofimplementing the claimed features.

What is claimed is:
 1. A computer-implemented method comprising:receiving, at a computing device, authentication credentials to sign into a user account, the user account managed by an account manager thattracks universal applications that are installed at the computing deviceand at one or more other devices that are also associated with the useraccount; responsive to signing in to the user account, communicatingwith the account manager to determine the tracked universalapplications; surfacing, in a user interface of the computing device,one or more visual representations of universal applications that havebeen installed on the one or more other devices that are not yetinstalled on the computing device; and responsive to receiving aselection of one of the visual representations, initiating a download ofthe respective universal application to the computing device.
 2. Thecomputer-implemented method of claim 1, wherein the one or more visualrepresentations each indicate that the respective universal applicationis installed on one of the one or more other devices.
 3. Thecomputer-implemented method of claim 1, further comprising presentingproximate at least one of the one or more visual representations anindication that the respective universal application is installed on oneof the one or more other devices.
 4. The computer-implemented method ofclaim 3, wherein the indication indicates a type of the device at whichthe respective universal application is installed.
 5. Thecomputer-implemented method of claim 3, wherein the downloading of therespective universal application causes removal of the respectiveindication.
 6. The computer-implemented method of claim 1, wherein theselection comprises a single click or tap on the visual representation.7. The computer implemented method of claim 1, wherein the userinterface includes at least one visual representation of an applicationthat was recently installed locally on the computing device.
 8. Thecomputer-implemented method of claim 1, further comprising, responsiveto receiving the selection of the visual representation, presentingproximate the visual representation of the respective universalapplication a download status visual indicating the status of thedownload of the universal application to the computing device.
 9. Thecomputer implemented method of claim 1, wherein the user interface iscontained within a start menu interface of the computing device.
 10. Thecomputer-implemented method of claim 1, wherein the one or more otherdevices have a different platform than the computing device.
 11. Acomputer-implemented method comprising: receiving, at a computingdevice, authentication credentials to sign in to a user account, theuser account managed by an account manager that tracks universalapplications that are installed at the computing device and at one ormore additional devices that are also associated with the user account;responsive to signing in to the user account, communicating with theaccount manager to determine the tracked universal applications;surfacing, at the computing device, at least one visual representationof a universal application that is installed on an additional deviceassociated with the user account and not yet installed on the computingdevice; presenting, proximate the at least one visual representation ofthe universal application, a download control selectable to download theuniversal application to the computing device; and responsive toreceiving a selection of the download control, downloading the universalapplication to the computing device.
 12. The computer-implemented methodof claim 11, wherein the additional device has a different platform thanthe computing device.
 13. The computer-implemented method of claim 11,wherein the at least one visual representation of the universalapplication indicates that the universal application is installed on theadditional device.
 14. The computer-implemented method of claim 11,further comprising presenting proximate the at least one visualrepresentation an indication that the respective universal applicationis installed on the additional device.
 15. The computer-implementedmethod of claim 14, wherein the indication indicates a type of theadditional device.
 16. The computer-implemented method of claim 14,wherein the downloading of the universal application causes removal ofthe indication.
 17. The computer-implemented method of claim 11, whereinthe selection comprises a single click or tap on the download control.18. The computer-implemented method of claim 11, further comprisingsurfacing at least one visual representation of a local application thatis installed on the computing device.
 19. The computer-implementedmethod of claim 11, further comprising after downloading the universalapplication to the computing device: receiving a selection of the visualrepresentation of the universal application; and launching the universalapplication at the computing device.
 20. A computing device comprising:a display device; at least one processor; and one or morecomputer-readable storage media including instructions stored thereonthat, responsive to execution by the at least one processor, cause thecomputing device to perform operations comprising: receiving, at thecomputing device, authentication credentials to sign in to a useraccount, the user account managed by an account manager that tracksuniversal applications that are installed at the computing device and atone or more other devices that are also associated with the useraccount; responsive to signing in to the user account, communicatingwith the account manager to determine the tracked universalapplications; surfacing, in a user interface, one or more visualrepresentations of universal applications that have been installed onthe one or more other devices that are not yet installed on thecomputing device; and responsive to receiving a selection of one of thevisual representations, initiating a download of the respectiveuniversal application to the computing device.